import * as XLSX from 'xlsx'
import { saveAs } from 'file-saver'
import type { Message } from '../types'

export const exportToExcel = (messages: Message[]) => {
  // 转换消息数据为表格格式
  const data = messages.map(msg => ({
    '发送时间': new Date(msg.timestamp).toLocaleString(),
    '发送者': msg.sender,
    '内容': msg.content
  }))

  // 创建工作簿
  const wb = XLSX.utils.book_new()
  const ws = XLSX.utils.json_to_sheet(data)

  // 设置列宽
  const colWidths = [
    { wch: 20 }, // 发送时间
    { wch: 10 }, // 发送者
    { wch: 50 }  // 内容
  ]
  ws['!cols'] = colWidths

  // 添加工作表到工作簿
  XLSX.utils.book_append_sheet(wb, ws, '聊天记录')

  // 生成二进制文件
  const wbout = XLSX.write(wb, {
    bookType: 'xlsx',
    type: 'array'
  })

  // 创建 Blob
  const blob = new Blob([wbout], { type: 'application/octet-stream' })

  // 下载文件
  const fileName = `聊天记录_${new Date().toLocaleDateString()}.xlsx`
  saveAs(blob, fileName)
} 